package com.huan.hotitems;

import com.huan.bean.UserBehavior;
import org.apache.flink.api.common.functions.AggregateFunction;


//ACC 累加器的类型（中间聚合状态）
//实现自定义增量函数
public class ItemCountAgg implements AggregateFunction<UserBehavior,Long,Long> {

    //初始为0
    @Override
    public Long createAccumulator() {
        return 0L;
    }

    //将给定的输入值添加到给定的累加器，返回新的累加器值
    @Override
    public Long add(UserBehavior value, Long accumulator) {
        return accumulator + 1;
    }

    //返回当前结果
    @Override
    public Long getResult(Long accumulator) {
        return accumulator;
    }

    //合并两个累加器，以合并状态返回累加器。
    @Override
    public Long merge(Long a, Long b) {
        return a + b;
    }
}
